package com.qsl.ssyx.cart.service;

import com.qsl.ssyx.model.order.CartInfo;

import java.util.List;

public interface CartService {

    //    根据用户id，商品Id,商品数量加入Redis-添加商品进购物车
    void addToCart(Long userId, Long skuId, Integer skuNum);

    //    根据商品Id及用户id删除购物车商品
    void deleteCartBySkuId(Long skuId, Long userId);

    //    根据用户Id清空购物车商品
    void deleteAllCart(Long userId);

    //    根据用户Id清空购物车商品-批量删除
    void batchDeleteCart(Long userId, List<Long> skuIdList);

    //    根据用户Id获取-购物车商品列表
    List<CartInfo> getCartList(Long userId);

    // 更新Redis购物车商品选中状态
    void checkCart(Long userId, Integer isChecked, Long skuId);

    // 修改Redis购物车商品选中状态-全选/全不选
    boolean checkAllCart(Long userId, Integer isChecked);

    // 修改Redis购物车商品选中状态-批量选中
    boolean batchCheckCart(List<Long> skuIdList, Long userId, Integer isChecked);

    //    获取购物车里选中的商品-根据用户Id
    List<CartInfo> getCartCheckedList(Long userId);

    //    根据用户id,获取当前用户购物车商品（选中的购物项）
    List<CartInfo> getCartListByUserId(Long userId);
}
